<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本结构</title>
</head>
<body>
    
</body>
</html>
<script>
    //基本结构
    // let hd = {
    //     "title" : "后盾人",
    //     "url" : "houdunren.com",
    //     "teacher" : {
    //         "name" : "向军大叔"
    //     }
    // };
    // console.log(hd);

    //数组结构
    // let lessons = [
    //     {
    //         "title" : "媒体查询响应式布局",
    //         "category" : "css",
    //         "click" : 199
    //     },
    //     {
    //         "title" : "FLEX弹性盒子模型",
    //         "category" : "css",
    //         "click" : 200
    //     },
    //     {
    //         "title" : "MYSQ多表查询操作",
    //         "category" : "mysql",
    //         "click" : 89
    //     }
    // ];
    // console.log(lessons[1].click);

    //序列化
    //序列化是将json数据转化字符串，一般用作向其他语言传输数据
    // console.log(JSON.stringify(lessons,['title','click'],1));


    //为数据添加 toJSON 方法返回自定义格式
    // let hd = {
    //     "title" : "后盾人",
    //     "url" : "houdunren.com",
    //     "teacher" : {
    //         "name" : "向军大叔"
    //     },
    //     "toJSON" : function(){
    //         return {
    //             "title" : this.title,
    //             "name" : this.teacher.name
    //         };
    //     }
    // };
    // console.log(JSON.stringify(hd,null,2));


     let hd = {
        "title" : "后盾人",
        "url" : "houdunren.com",
        "teacher" : {
            "name" : "向军大叔"
        }
    };

    //json格式化
    // let jsonStr = JSON.stringify(hd);
    // console.log(jsonStr);
    // //反序列化
    // console.log(JSON.parse(jsonStr));

    let jsonStr = JSON.stringify(hd);
    // console.log(jsonStr)
    console.log(
        JSON.parse(jsonStr,(key,value) => {
            if(key == 'title'){
                return `[推荐] ${value}`;
            }
            return value;
        })
    );

</script>